        LIST    P=16F877A       ; Se indica el tipo el procesador
        RADIX   HEX             ; Sistema de numeracion hexadecimal
        INCLUDE <P16F877A.INC>  ; Se incluye la definicion de registros
                                ; internos en una libreria
        ORG     0x00            ; Inicio en el vector de reset
        goto    INICIO          ; Va a la primera instruccion del programa

        ORG     0X05            ; Salta el vector de interrupcion

INICIO	bsf     STATUS,RP0	; Cambio al banco de memoria 1
	bcf	STATUS,RP1
	clrf	TRISD           ; Puerto D como salida
	movlw	b'00000011'
	movwf	TRISB		; RB0-RB1 como entradas
	bcf	STATUS,RP0	; Cambio a banco 0
	clrf	PORTD		; Borrado de LEDs
	clrf	PORTB		; Borrado de lineas no usadas de puerto B

BUCLE	movf	PORTB,W		; Se carga el valor de puerto B en registro W
	btfss	STATUS,Z	; Comprobacion de Z=1
	goto	APAGAR		; Si RB0-RB1 no son 0 (cero)
	goto	ENCENDER	; Si RB0-RB1 son 0 (cero)

APAGAR	clrf	PORTD		; Se apagan los LEDs
	goto	BUCLE		; Salta para volver a comprobar

ENCENDER
        movlw	0xFF		; Se encienden los LEDs
	movwf	PORTD
	goto	BUCLE		; Salta para volver a comprobar

	END